File systems store files and store information about files. The information stored in files may be referred to as data. The information about files may be referred to as metadata. The metadata may include, for example, a file name, a file size, a file parent, a file descendant, a file access time, a file owner, file permissions, and other information. Some of the metadata for an individual file may be stored in a data structure known as an inode. The inodes and metadata for a file system may also be stored collectively. The metadata has both structure and content. The content (e.g., metadata) may be stored in a set of data structures (e.g., btrees). When the metadata is stored in one or more trees (e.g., btrees), there may be a root inode associated with the top of the set of trees. When the data in a file or about a file changes, a file system may want to update the metadata about that file. For example, if the contents of a file are changed, the file system may want to memorialize the time at which the change was made and by whom the change was made.
To protect the metadata concerning the files organized and made available by a file system the file system may include a metadata dump facility that contains a mirror of the file system metadata. The metadata dump may be referred to as a metadump. The file system may seek to keep the metadump updated in real time as the metadata changes in the file system. The metadump may be intended to facilitate, for example, accelerated disaster recovery. In the event of a disaster, the metadump can be used to restore metadata in a wholesale manner for the file system it mirrors. Restoring the metadata may include rebuilding the structure(s) in which the metadata was stored and then populating those structure(s).
Conventionally, the metadump for a file system may have been stored in a structured query language (SQL) database that contained a copy of the file system metadata. When a file system transaction occurred in the file system, a copy of the modified metadata was sent to the SQL database and applied. In effect, the metadata database was a mirror of the file system metadata, but in SQL form. Capturing backups as well as restoring backups was performed without file system down time.